"""
遍历：
    5类数据容器都支持for循环
    列表、元组、字符串支持while循环，集合、字典不支持（无法下标索引）
统计容器的元素个数：len(容器)
统计容器的最大元素：max(容器)
统计容器的最小元素：min(容器)
"""

my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
my_str = "abcdefg"
my_set = {1, 2, 3, 4, 5}
my_dict = {"key1": 1, "key2": 2, "key3": 3, "key4": 4, "key5": 5}

# len元素个数
print(f"列表 元素个数有：{len(my_list)}")
print(f"元组 元素个数有：{len(my_tuple)}")
print(f"字符串 元素个数有：{len(my_str)}")
print(f"集合 元素个数有：{len(my_set)}")
print(f"字典 元素个数有：{len(my_dict)}")

# max最大元素
print(f"列表 最大的元素是：{max(my_list)}")
print(f"元组 最大的元素是：{max(my_tuple)}")
print(f"字符串最大的元素是：{max(my_str)}")
print(f"集合 最大的元素是：{max(my_set)}")
print(f"字典 最大的元素是：{max(my_dict)}")

# min最小元素
print(f"列表 最小的元素是：{min(my_list)}")
print(f"元组 最小的元素是：{min(my_tuple)}")
print(f"字符串最小的元素是：{min(my_str)}")
print(f"集合 最小的元素是：{min(my_set)}")
print(f"字典 最小的元素是：{min(my_dict)}")

# 类型转换：容器转列表
print(f"列表 转列表：{list(my_list)}")
print(f"元组 转列表：{list(my_tuple)}")
print(f"字符串转列表：{list(my_str)}")
print(f"集合 转列表：{list(my_set)}")
print(f"字典 转列表：{list(my_dict)}")

# 类型转换：容器转元组
print(f"列表 转元组：{tuple(my_list)}")
print(f"元组 转元组：{tuple(my_tuple)}")
print(f"字符串转元组：{tuple(my_str)}")
print(f"集合 转元组：{tuple(my_set)}")
print(f"字典 转元组：{tuple(my_dict)}")

# 类型转换：容器转字符串
print(f"列表 转字符串：{str(my_list)}")
print(f"元组 转字符串：{str(my_tuple)}")
print(f"字符串转字符串：{str(my_str)}")
print(f"集合 转字符串：{str(my_set)}")
print(f"字典 转字符串：{str(my_dict)}")

# 类型转换：容器转集合
print(f"列表 转集合：{set(my_list)}")
print(f"元组 转集合：{set(my_tuple)}")
print(f"字符串转集合：{set(my_str)}")
print(f"集合 转集合：{set(my_set)}")
print(f"字典 转集合：{set(my_dict)}")

# sorted排序
print(f"列表 sorted排序：{sorted(my_list)}")
print(f"元组 sorted排序：{sorted(my_tuple)}")
print(f"字符串sorted排序：{sorted(my_str)}")
print(f"集合 sorted排序：{sorted(my_set)}")
print(f"字典 sorted排序：{sorted(my_dict)}")

print(f"列表 sorted排序：{sorted(my_list, reverse=True)}")
print(f"元组 sorted排序：{sorted(my_tuple, reverse=True)}")
print(f"字符串sorted排序：{sorted(my_str, reverse=True)}")
print(f"集合 sorted排序：{sorted(my_set, reverse=True)}")
print(f"字典 sorted排序：{sorted(my_dict, reverse=True)}")
